<!DOCTYPE html>
<html lang="en-us">
  <head>

    <meta http-equiv="content-type" content="text/html; charset=utf-8">
    
<meta charset="UTF-8">
<title>Specify an analyzer | Elasticsearch Guide [7.7] | Elastic</title>
<link rel="home" href="index.html" title="Elasticsearch Guide [7.7]">
<link rel="up" href="configure-text-analysis.html" title="Configure text analysis">
<link rel="prev" href="analysis-custom-analyzer.html" title="Create a custom analyzer">
<link rel="next" href="analysis-analyzers.html" title="Built-in analyzer reference">
<meta name="DC.type" content="Learn/Docs/Elasticsearch/Reference/7.7">
<meta name="DC.subject" content="Elasticsearch">
<meta name="DC.identifier" content="7.7">
<meta name="robots" content="noindex,nofollow">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <script src="https://cdn.optimizely.com/js/18132920325.js"></script>
    <link rel="apple-touch-icon" sizes="57x57" href="/apple-icon-57x57.png">
    <link rel="apple-touch-icon" sizes="60x60" href="/apple-icon-60x60.png">
    <link rel="apple-touch-icon" sizes="72x72" href="/apple-icon-72x72.png">
    <link rel="apple-touch-icon" sizes="76x76" href="/apple-icon-76x76.png">
    <link rel="apple-touch-icon" sizes="114x114" href="/apple-icon-114x114.png">
    <link rel="apple-touch-icon" sizes="120x120" href="/apple-icon-120x120.png">
    <link rel="apple-touch-icon" sizes="144x144" href="/apple-icon-144x144.png">
    <link rel="apple-touch-icon" sizes="152x152" href="/apple-icon-152x152.png">
    <link rel="apple-touch-icon" sizes="180x180" href="/apple-icon-180x180.png">
    <link rel="icon" type="image/png" href="/favicon-32x32.png" sizes="32x32">
    <link rel="icon" type="image/png" href="/android-chrome-192x192.png" sizes="192x192">
    <link rel="icon" type="image/png" href="/favicon-96x96.png" sizes="96x96">
    <link rel="icon" type="image/png" href="/favicon-16x16.png" sizes="16x16">
    <link rel="manifest" href="/manifest.json">
    <meta name="apple-mobile-web-app-title" content="Elastic">
    <meta name="application-name" content="Elastic">
    <meta name="msapplication-TileColor" content="#ffffff">
    <meta name="msapplication-TileImage" content="/mstile-144x144.png">
    <meta name="theme-color" content="#ffffff">
    <meta name="naver-site-verification" content="936882c1853b701b3cef3721758d80535413dbfd">
    <meta name="yandex-verification" content="d8a47e95d0972434">
    <meta name="localized" content="true">
    <meta name="st:robots" content="follow,index">
    <meta property="og:image" content="https://www.elastic.co/static/images/elastic-logo-200.png">
    <link rel="shortcut icon" href="/favicon.ico" type="image/x-icon">
    <link rel="icon" href="/favicon.ico" type="image/x-icon">
    <link rel="apple-touch-icon-precomposed" sizes="64x64" href="/favicon_64x64_16bit.png">
    <link rel="apple-touch-icon-precomposed" sizes="32x32" href="/favicon_32x32.png">
    <link rel="apple-touch-icon-precomposed" sizes="16x16" href="/favicon_16x16.png">
    <!-- Give IE8 a fighting chance -->
    <!--[if lt IE 9]>
    <script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script>
    <script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script>
    <![endif]-->
    <link rel="stylesheet" type="text/css" href="/guide/static/styles.css">
  </head>

  <!--© 2015-2021 Elasticsearch B.V. Copying, publishing and/or distributing without written permission is strictly prohibited.-->

  <body>
    <!-- Google Tag Manager -->
    <script>dataLayer = [];</script><noscript><iframe src="//www.googletagmanager.com/ns.html?id=GTM-58RLH5" height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
    <script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start': new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0], j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= '//www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); })(window,document,'script','dataLayer','GTM-58RLH5');</script>
    <!-- End Google Tag Manager -->

    <!-- Global site tag (gtag.js) - Google Analytics -->
    <script async src="https://www.googletagmanager.com/gtag/js?id=UA-12395217-16"></script>
    <script>
      window.dataLayer = window.dataLayer || [];
      function gtag(){dataLayer.push(arguments);}
      gtag('js', new Date());
      gtag('config', 'UA-12395217-16');
    </script>

    <!--BEGIN QUALTRICS WEBSITE FEEDBACK SNIPPET-->
    <script type="text/javascript">
      (function(){var g=function(e,h,f,g){
      this.get=function(a){for(var a=a+"=",c=document.cookie.split(";"),b=0,e=c.length;b<e;b++){for(var d=c[b];" "==d.charAt(0);)d=d.substring(1,d.length);if(0==d.indexOf(a))return d.substring(a.length,d.length)}return null};
      this.set=function(a,c){var b="",b=new Date;b.setTime(b.getTime()+6048E5);b="; expires="+b.toGMTString();document.cookie=a+"="+c+b+"; path=/; "};
      this.check=function(){var a=this.get(f);if(a)a=a.split(":");else if(100!=e)"v"==h&&(e=Math.random()>=e/100?0:100),a=[h,e,0],this.set(f,a.join(":"));else return!0;var c=a[1];if(100==c)return!0;switch(a[0]){case "v":return!1;case "r":return c=a[2]%Math.floor(100/c),a[2]++,this.set(f,a.join(":")),!c}return!0};
      this.go=function(){if(this.check()){var a=document.createElement("script");a.type="text/javascript";a.src=g;document.body&&document.body.appendChild(a)}};
      this.start=function(){var a=this;window.addEventListener?window.addEventListener("load",function(){a.go()},!1):window.attachEvent&&window.attachEvent("onload",function(){a.go()})}};
      try{(new g(100,"r","QSI_S_ZN_emkP0oSe9Qrn7kF","https://znemkp0ose9qrn7kf-elastic.siteintercept.qualtrics.com/WRSiteInterceptEngine/?Q_ZID=ZN_emkP0oSe9Qrn7kF")).start()}catch(i){}})();
    </script><div id="ZN_emkP0oSe9Qrn7kF"><!--DO NOT REMOVE-CONTENTS PLACED HERE--></div>
    <!--END WEBSITE FEEDBACK SNIPPET-->

    <div id="elastic-nav" style="display:none;"></div>
    <script src="https://www.elastic.co/elastic-nav.js"></script>

    <!-- Subnav -->
    <div>
      <div>
        <div class="tertiary-nav d-none d-md-block">
          <div class="container">
            <div class="p-t-b-15 d-flex justify-content-between nav-container">
              <div class="breadcrum-wrapper"><span><a href="/guide/" style="font-size: 14px; font-weight: 600; color: #000;">Docs</a></span></div>
            </div>
          </div>
        </div>
      </div>
    </div>

    <div class="main-container">
      <section id="content">
        <div class="content-wrapper">

          <section id="guide" lang="en">
            <div class="container">
              <div class="row">
                <div class="col-xs-12 col-sm-8 col-md-8 guide-section">
                  <!-- start body -->
                  <div class="page_header">
<strong>IMPORTANT</strong>: No additional bug fixes or documentation updates
will be released for this version. For the latest information, see the
<a href="../current/index.html">current release documentation</a>.
</div>
<div id="content">
<div class="breadcrumbs">
<span class="breadcrumb-link"><a href="index.html">Elasticsearch Guide [7.7]</a></span>
»
<span class="breadcrumb-link"><a href="analysis.html">Text analysis</a></span>
»
<span class="breadcrumb-link"><a href="configure-text-analysis.html">Configure text analysis</a></span>
»
<span class="breadcrumb-node">Specify an analyzer</span>
</div>
<div class="navheader">
<span class="prev">
<a href="analysis-custom-analyzer.html">« Create a custom analyzer</a>
</span>
<span class="next">
<a href="analysis-analyzers.html">Built-in analyzer reference »</a>
</span>
</div>
<div class="section">
<div class="titlepage"><div><div>
<h2 class="title">
<a id="specify-analyzer"></a>Specify an analyzer<a class="edit_me edit_me_private" rel="nofollow" title="Editing on GitHub is available to Elastic" href="https://github.com/elastic/elasticsearch/edit/7.7/docs/reference/analysis/specify-analyzer.asciidoc">edit</a>
</h2>
</div></div></div>
<p>Elasticsearch offers a variety of ways to specify built-in or custom analyzers:</p>
<div class="ulist itemizedlist">
<ul class="itemizedlist">
<li class="listitem">
By <code class="literal">text</code> field, index, or query
</li>
<li class="listitem">
For <a class="xref" href="analysis-index-search-time.html" title="Index and search analysis">index or search time</a>
</li>
</ul>
</div>
<div class="tip admon">
<div class="icon"></div>
<div class="admon_content">
<h3>Keep it simple</h3>
<p>The flexibility to specify analyzers at different levels and for different times
is great…​ <em>but only when it’s needed</em>.</p>
<p>In most cases, a simple approach works best: Specify an analyzer for each
<code class="literal">text</code> field, as outlined in <a class="xref" href="specify-analyzer.html#specify-index-field-analyzer" title="Specify the analyzer for a field">Specify the analyzer for a field</a>.</p>
<p>This approach works well with Elasticsearch’s default behavior, letting you use the same
analyzer for indexing and search. It also lets you quickly see which analyzer
applies to which field using the <a class="xref" href="indices-get-mapping.html" title="Get mapping API">get mapping API</a>.</p>
<p>If you don’t typically create mappings for your indices, you can use
<a class="xref" href="indices-templates.html" title="Put index template API">index templates</a> to achieve a similar effect.</p>
</div>
</div>
<div class="section">
<div class="titlepage"><div><div>
<h3 class="title">
<a id="specify-index-time-analyzer"></a>How Elasticsearch determines the index analyzer<a class="edit_me edit_me_private" rel="nofollow" title="Editing on GitHub is available to Elastic" href="https://github.com/elastic/elasticsearch/edit/7.7/docs/reference/analysis/specify-analyzer.asciidoc">edit</a>
</h3>
</div></div></div>
<p>Elasticsearch determines which index analyzer to use by checking the following parameters
in order:</p>
<div class="olist orderedlist">
<ol class="orderedlist">
<li class="listitem">
The <a class="xref" href="analyzer.html" title="analyzer"><code class="literal">analyzer</code></a> mapping parameter for the field.
See <a class="xref" href="specify-analyzer.html#specify-index-field-analyzer" title="Specify the analyzer for a field">Specify the analyzer for a field</a>.
</li>
<li class="listitem">
The <code class="literal">analysis.analyzer.default</code> index setting.
See <a class="xref" href="specify-analyzer.html#specify-index-time-default-analyzer" title="Specify the default analyzer for an index">Specify the default analyzer for an index</a>.
</li>
</ol>
</div>
<p>If none of these parameters are specified, the
<a class="xref" href="analysis-standard-analyzer.html" title="Standard Analyzer"><code class="literal">standard</code> analyzer</a> is used.</p>
</div>

<div class="section">
<div class="titlepage"><div><div>
<h3 class="title">
<a id="specify-index-field-analyzer"></a>Specify the analyzer for a field<a class="edit_me edit_me_private" rel="nofollow" title="Editing on GitHub is available to Elastic" href="https://github.com/elastic/elasticsearch/edit/7.7/docs/reference/analysis/specify-analyzer.asciidoc">edit</a>
</h3>
</div></div></div>
<p>When mapping an index, you can use the <a class="xref" href="analyzer.html" title="analyzer"><code class="literal">analyzer</code></a> mapping parameter
to specify an analyzer for each <code class="literal">text</code> field.</p>
<p>The following <a class="xref" href="indices-create-index.html" title="Create index API">create index API</a> request sets the
<code class="literal">whitespace</code> analyzer as the analyzer for the <code class="literal">title</code> field.</p>
<div class="pre_wrapper lang-console">
<pre class="programlisting prettyprint lang-console">PUT my_index
{
  "mappings": {
    "properties": {
      "title": {
        "type": "text",
        "analyzer": "whitespace"
      }
    }
  }
}</pre>
</div>
<div class="console_widget" data-snippet="snippets/802.console"></div>
</div>

<div class="section">
<div class="titlepage"><div><div>
<h3 class="title">
<a id="specify-index-time-default-analyzer"></a>Specify the default analyzer for an index<a class="edit_me edit_me_private" rel="nofollow" title="Editing on GitHub is available to Elastic" href="https://github.com/elastic/elasticsearch/edit/7.7/docs/reference/analysis/specify-analyzer.asciidoc">edit</a>
</h3>
</div></div></div>
<p>In addition to a field-level analyzer, you can set a fallback analyzer for
using the <code class="literal">analysis.analyzer.default</code> setting.</p>
<p>The following <a class="xref" href="indices-create-index.html" title="Create index API">create index API</a> request sets the
<code class="literal">simple</code> analyzer as the fallback analyzer for <code class="literal">my_index</code>.</p>
<div class="pre_wrapper lang-console">
<pre class="programlisting prettyprint lang-console">PUT my_index
{
  "settings": {
    "analysis": {
      "analyzer": {
        "default": {
          "type": "simple"
        }
      }
    }
  }
}</pre>
</div>
<div class="console_widget" data-snippet="snippets/803.console"></div>
</div>

<div class="section">
<div class="titlepage"><div><div>
<h3 class="title">
<a id="specify-search-analyzer"></a>How Elasticsearch determines the search analyzer<a class="edit_me edit_me_private" rel="nofollow" title="Editing on GitHub is available to Elastic" href="https://github.com/elastic/elasticsearch/edit/7.7/docs/reference/analysis/specify-analyzer.asciidoc">edit</a>
</h3>
</div></div></div>
<div class="warning admon">
<div class="icon"></div>
<div class="admon_content">
<p>In most cases, specifying a different search analyzer is unnecessary. Doing so
could negatively impact relevancy and result in unexpected search results.</p>
<p>If you choose to specify a separate search analyzer, we recommend you thoroughly
<a class="xref" href="test-analyzer.html" title="Test an analyzer">test your analysis configuration</a> before deploying in
production.</p>
</div>
</div>
<p>At search time, Elasticsearch determines which analyzer to use by checking the following
parameters in order:</p>
<div class="olist orderedlist">
<ol class="orderedlist">
<li class="listitem">
The <a class="xref" href="analyzer.html" title="analyzer"><code class="literal">analyzer</code></a> parameter in the search query.
See <a class="xref" href="specify-analyzer.html#specify-search-query-analyzer" title="Specify the search analyzer for a query">Specify the search analyzer for a query</a>.
</li>
<li class="listitem">
The <a class="xref" href="search-analyzer.html" title="search_analyzer"><code class="literal">search_analyzer</code></a> mapping parameter for the field.
See <a class="xref" href="specify-analyzer.html#specify-search-field-analyzer" title="Specify the search analyzer for a field">Specify the search analyzer for a field</a>.
</li>
<li class="listitem">
The <code class="literal">analysis.analyzer.default_search</code> index setting.
See <a class="xref" href="specify-analyzer.html#specify-search-default-analyzer" title="Specify the default search analyzer for an index">Specify the default search analyzer for an index</a>.
</li>
<li class="listitem">
The <a class="xref" href="analyzer.html" title="analyzer"><code class="literal">analyzer</code></a> mapping parameter for the field.
See <a class="xref" href="specify-analyzer.html#specify-index-field-analyzer" title="Specify the analyzer for a field">Specify the analyzer for a field</a>.
</li>
</ol>
</div>
<p>If none of these parameters are specified, the
<a class="xref" href="analysis-standard-analyzer.html" title="Standard Analyzer"><code class="literal">standard</code> analyzer</a> is used.</p>
</div>

<div class="section">
<div class="titlepage"><div><div>
<h3 class="title">
<a id="specify-search-query-analyzer"></a>Specify the search analyzer for a query<a class="edit_me edit_me_private" rel="nofollow" title="Editing on GitHub is available to Elastic" href="https://github.com/elastic/elasticsearch/edit/7.7/docs/reference/analysis/specify-analyzer.asciidoc">edit</a>
</h3>
</div></div></div>
<p>When writing a <a class="xref" href="full-text-queries.html" title="Full text queries">full-text query</a>, you can use the <code class="literal">analyzer</code>
parameter to specify a search analyzer. If provided, this overrides any other
search analyzers.</p>
<p>The following <a class="xref" href="search-search.html" title="Search API">search API</a> request sets the <code class="literal">stop</code> analyzer as
the search analyzer for a <a class="xref" href="query-dsl-match-query.html" title="Match query"><code class="literal">match</code></a> query.</p>
<div class="pre_wrapper lang-console">
<pre class="programlisting prettyprint lang-console">GET my_index/_search
{
  "query": {
    "match": {
      "message": {
        "query": "Quick foxes",
        "analyzer": "stop"
      }
    }
  }
}</pre>
</div>
<div class="console_widget" data-snippet="snippets/804.console"></div>
</div>

<div class="section">
<div class="titlepage"><div><div>
<h3 class="title">
<a id="specify-search-field-analyzer"></a>Specify the search analyzer for a field<a class="edit_me edit_me_private" rel="nofollow" title="Editing on GitHub is available to Elastic" href="https://github.com/elastic/elasticsearch/edit/7.7/docs/reference/analysis/specify-analyzer.asciidoc">edit</a>
</h3>
</div></div></div>
<p>When mapping an index, you can use the <a class="xref" href="analyzer.html" title="analyzer"><code class="literal">search_analyzer</code></a> mapping
parameter to specify a search analyzer for each <code class="literal">text</code> field.</p>
<p>If a search analyzer is provided, the index analyzer must also be specified
using the <code class="literal">analyzer</code> parameter.</p>
<p>The following <a class="xref" href="indices-create-index.html" title="Create index API">create index API</a> request sets the
<code class="literal">simple</code> analyzer as the search analyzer for the <code class="literal">title</code> field.</p>
<div class="pre_wrapper lang-console">
<pre class="programlisting prettyprint lang-console">PUT my_index
{
  "mappings": {
    "properties": {
      "title": {
        "type": "text",
        "analyzer": "whitespace",
        "search_analyzer": "simple"
      }
    }
  }
}</pre>
</div>
<div class="console_widget" data-snippet="snippets/805.console"></div>
</div>

<div class="section">
<div class="titlepage"><div><div>
<h3 class="title">
<a id="specify-search-default-analyzer"></a>Specify the default search analyzer for an index<a class="edit_me edit_me_private" rel="nofollow" title="Editing on GitHub is available to Elastic" href="https://github.com/elastic/elasticsearch/edit/7.7/docs/reference/analysis/specify-analyzer.asciidoc">edit</a>
</h3>
</div></div></div>
<p>When <a class="xref" href="indices-create-index.html" title="Create index API">creating an index</a>, you can set a default search
analyzer using the <code class="literal">analysis.analyzer.default_search</code> setting.</p>
<p>If a search analyzer is provided, a default index analyzer must also be
specified using the <code class="literal">analysis.analyzer.default</code> setting.</p>
<p>The following  <a class="xref" href="indices-create-index.html" title="Create index API">create index API</a> request sets the
<code class="literal">whitespace</code> analyzer as the default search analyzer for the <code class="literal">my_index</code> index.</p>
<div class="pre_wrapper lang-console">
<pre class="programlisting prettyprint lang-console">PUT my_index
{
  "settings": {
    "analysis": {
      "analyzer": {
        "default": {
          "type": "simple"
        },
        "default_search": {
          "type": "whitespace"
        }
      }
    }
  }
}</pre>
</div>
<div class="console_widget" data-snippet="snippets/806.console"></div>
</div>

</div>
<div class="navfooter">
<span class="prev">
<a href="analysis-custom-analyzer.html">« Create a custom analyzer</a>
</span>
<span class="next">
<a href="analysis-analyzers.html">Built-in analyzer reference »</a>
</span>
</div>
</div>

                  <!-- end body -->
                </div>
                <div class="col-xs-12 col-sm-4 col-md-4" id="right_col">
                  <div id="rtpcontainer" style="display: block;">
                    <div class="mktg-promo">
                      <h3>Most Popular</h3>
                      <ul class="icons">
                        <li class="icon-elasticsearch-white"><a href="https://www.elastic.co/webinars/getting-started-elasticsearch?baymax=default&amp;elektra=docs&amp;storm=top-video">Get Started with Elasticsearch: Video</a></li>
                        <li class="icon-kibana-white"><a href="https://www.elastic.co/webinars/getting-started-kibana?baymax=default&amp;elektra=docs&amp;storm=top-video">Intro to Kibana: Video</a></li>
                        <li class="icon-logstash-white"><a href="https://www.elastic.co/webinars/introduction-elk-stack?baymax=default&amp;elektra=docs&amp;storm=top-video">ELK for Logs &amp; Metrics: Video</a></li>
                      </ul>
                    </div>
                  </div>
                </div>
              </div>
            </div>
          </section>

        </div>


<div id="elastic-footer"></div>
<script src="https://www.elastic.co/elastic-footer.js"></script>
<!-- Footer Section end-->

      </section>
    </div>

<script src="/guide/static/jquery.js"></script>
<script type="text/javascript" src="/guide/static/docs.js"></script>
<script type="text/javascript">
  window.initial_state = {}</script>
  </body>
</html>
